The present invention relates to a software program. More particularly, the present invention relates to a software program for computer network systems that utilizes at least a portion of a data publication title to create a numeric destination address for a computer network system network frame so that the network frame is sent directly to the destination address and received by one or more computer network system subscribers of the network frame without the use of a network address server.
A typical computer network system includes a network medium such as coaxial cable or twisted-pair cable, and a plurality of nodes, such as computers, terminals, printers, data storage devices, and servers that are connected to the media. The nodes communicate with one another according to an architecture model, such as the Open-Systems Interconnection (OSI) Model. The OSI Model includes seven different layers. These layers are: Physical, Data Link, Network, Transport, Session, Presentation Services, and Application.
A Media layer includes hardware or software used for connecting nodes together, such as the above-described coaxial cable or twisted-pair cable. The Physical layer is the connection interface between a node and the Media layer, such as RS-232C or IEEE 802.3. The Data Link layer is the mechanism used for data transfer across the Physical layer. The Data Link layer can be subdivided into a Logic Link Control (LLC) sublayer and a Medium Access Control (MAC) sublayer. The LLC sublayer governs the connection between end points via a protocol, such as Ethernet. The MAC sublayer assembles data to be sent into a frame and disassembles data before passing it to the LLC sublayer.
The Network layer is in charge of routing either through connection-oriented or connectionless-oriented means. This layer forms data packets and routes them from one node to another. Protocols used at this layer include X.25 and ISDN. The Transport layer is a network independent service provided to the Session layer. The Transport layer receives data from the Session layer and sends it to a destination. The Transport layer performs the reverse function when data is inbound from a target node. The Session layer is where connection points between nodes are established. Addresses used at this layer differ from those used at the Transport layer. Session layer addresses are used by programs or users. Transport layer addresses are used to establish Transport layer connections. The Session layer is responsible for establishing a connection for an application to use. The Session layer is also responsible for enforcing protocols between applications and reconnection in the event of a failure between two layers.
Translation of data passed between nodes is performed at the Presentation Services layer. The Presentation services layer also provides transformation of data exchanged between the Application layer and items above the Application layer. Finally, the Application layer provides services to applications so that the OSI capabilities can be accessed.
As noted above, Ethernet is a lower layer networking protocol in the OSI Model. Ethernet operates in one of three addressing modes: unicast, broadcast, and multicast. Unicast is a point-to-point technology which directs a message from one node to a second node on the network, with no other network nodes receiving this message. Broadcast addressing sends a network frame via the medium to all nodes connected to the network on which the network frame is transmitted. Each node on the broadcast network must read the frame and discard it if the network frame is unwanted. This requires Central Processing Unit (CPU) time which constitutes a significant portion of overall available CPU bandwidth for less sophisticated CPUs. The same issues arise for multicast addressing which Ethernet also supports. Multicast addressing is a specialized type of broadcast transmission in which a subset of the network nodes receive a network frame.
Multicast addressing attempts to overcome the disadvantages, noted above, with broadcast addressing by accessing only a subset of the nodes on a network. However, such multicast addressing must be managed by one of several techniques. One technique is to use a computer network system address server to manage the allocation of network addresses on the network. Such an address server utilizes a look-up table to determine which address to use. This table typically includes a list of network frame titles to which a corresponding publisher list and subscriber list are indexed. Use of an address server has the disadvantage of requiring each node to establish a dialogue with the address server to determine which addresses to use for the various frames.
Another disadvantage associated with multicast addressing is that an additional protocol needs to be developed to access the address server. A further disadvantage includes that additional network frames or traffic are present on the computer network system in order to talk with the address server. The address server is also a single point of failure for the computer network system. Additional complexity is required to deal with replacing a server while a network system continues to operate (e.g., hot standby or disk mirrors). Still further disadvantages include that additional network frames or network traffic are required to determine when an address is no longer in use and when a node powers up, it must talk to the address server, possibly overloading or swamping the computer system network if a large quantity of nodes are present.
The present invention is directed to alleviation of the above-described problems associated with broadcast and multicast network addressing. The present invention reduces the number of unwanted messages received by nodes, allowing lower performance CPUs to be used and providing greater available CPU processing time for other tasks. The present invention also eliminates the use of an address server which reduces extra equipment, eliminates address server network frames, and eliminates the single point of failure caused by the use of an address server. Furthermore, the present invention eliminates information processing by nodes caused by the address server protocol normally present.
An embodiment of the present invention is a computer based network system. The computer based network system includes a first node having a data value and medium, such as coaxial cable, twisted-pair cable, microwaves, etc., for transmitting a network frame. The computer based network system also includes a first node computer coupled to the medium and programmed to have a publication title associated with the data value. The first node computer is also programmed to generate a numeric address based on at least a portion of the publication title and to load the data value and publication title into a data field of a network frame. The first node computer is further programmed to load the numeric address into a destination address field of the network frame and to send the network frame on to the destination address via the medium. The computer based network system further includes a second node computer coupled to the medium and programmed to have the publication title associated with the data value. The second node computer is also programmed to generate the numeric address based on at least a portion of the publication title and to receive from the medium the network frame with this numeric address. The second node computer is further programmed to evaluate the received frame to determine whether the publication title used to generate the numeric address is in the data field of the network frame, to remove the data value from the data field of the network frame when the publication title used to generate the numeric address is in the data field, and to discard the network frame when the data field of the network frame lacks the publication title used to generate the numeric address.
The above-described computer based network system may be modified and include the following characteristics as described below. The first and second nodes of the computer based network system may each include a sensor. The network frames used on the computer based network system may include Ethernet frames.
The second node computer may also be programmed to have a second publication title associated with a second data value, to generate a second numeric address based on at least a portion of the second publication title, to load the second data value and the second publication title into a data field of the second network frame, to load the second numeric address into a destination address field of the second network frame, and to send the second network frame on to the second destination address via the medium. Such programming allows the second node to communicate with other nodes on a network, including the first node.
The first node computer may be programmed to have the second publication title associated with the second data value, to generate the second numeric address based on at least a portion of the second publication title, to receive from the medium the second network frame with the second numeric address, to evaluate the received second network frame to determine whether the second publication title used to generate the second numeric address is in the data field of the second network frame, to remove the second data value from the data field of the second network frame when the second publication title used to generate the second numeric address is in the data field, and to discard the second network frame when the data field of the second network frame lacks the second publication title used to generate the second numeric address. The second data value may include a control value that adjusts a set point of the first node, such as temperature. The computer based network system may additionally include a second node having the second data value. This second node may be a sensor.
Another embodiment of the present invention is a computer-readable medium including a computer software program having a set of modules executable by at least one computer for transmitting data on a network via a network frame. The software program includes a publication title module that generates a publication title associated with a data value. The software program also includes an address module that generates a numeric address for a destination address field of the network frame based on at least a portion of the publication title. The software program additionally includes a system call module that makes a system call to an operating system to load the data value and the publication title into a data field of the network frame, to load the numeric address into the destination address field of the network frame, and to send the network frame on to the destination address via a medium for transmitting the network frame.
The above-described computer-readable medium including the software program may be modified and include the following characteristics as described below. The software program may additionally include a receive module and an evaluation module. The receive module receives the network frame with the destination address from the media. The evaluation module evaluates the received frame with the destination address to determine whether the publication title used to generate the numeric address is in the data field of the network frame, removes the data value from the data field of the network when the publication title used to generate the numeric address is in the data field, and discards the network frame when the data field of the network frame lacks the publication title used to generate the numeric address.
The network frames may include Ethernet frames. The computer-readable medium may include things such as magnetic media, Read Only Memory (ROM), Random Access Memory (RAM), and CD ROM.
Another embodiment of the present invention is a computer based networking method. The computer based networking method includes the steps of creating a publication title associated with a data value and generating a numeric address based on at least a portion of the publication title. The method includes the additional steps of loading the data value and the publication title into a data field of the network frame and loading the numeric address into a destination address field of the network frame. The method further includes the step of sending the network frame on to the destination address via the network media.
The above-described method may be modified and include the following steps as described below. The above-described method may further include the steps of receiving from the media the network frame with the numeric address, evaluating the received frame to determine whether the publication title used to generate the numeric address is in the data field of the network frame, removing the data value from the data field of the network frame when the publication title used to generate the numeric address is in the data field, and discarding the network frame when the data field of the network frame lacks the publication title used to generate the numeric address.
Other objects, advantages, and novel features of the present invention will become apparent from the following detailed description when considered in conjunction with the accompanying drawings.